iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0

在非關聯式資料庫(NoSQL)中,Redis 是一個相當受歡迎的資料庫。除了可被作為資料庫使用外,也可作為快取。

它的特點在於:

  • 提供了多樣的資料型態,字串(string)、雜湊(hash)、串列(list)、集合(set)、有序集合(zset , sorted set),可以根據應用場景的不同決定資料儲存的型態。
  • 高性能,Redis是基於內存的資料庫,讀寫速度極快,通常每秒可超過數萬甚或數十萬次的操作,非常適合用於高吞吐量和延遲性低的應用。
  • 資料持久化,支援資料的持久化,可以定期將內存資料保存到磁碟中,或是將每一筆寫操作命令以日誌(Log)的形式記錄下來(Append-Only File, AOF)。
  • 支援主從複製(Master-Slave Replication),可以將資料的讀寫分離,讓所有的寫入/更新由主資料庫(Master)執行,讀取相關的操作則由從資料庫(Slave)執行。
  • 支援多程式語言的Client端,支援包含Java、Python、C#等程式語言。
  • 功能多樣,支援訂閱/發佈(publish/subscribe)、Lua script、發送通知等功能。

Redis常見的應用場景:

  • 快取,經常需要被查詢,但很少需要被修改或刪除的資料可以使用Redis來快取,減少存取的延遲。
  • 計數器,統計網頁的總瀏覽次數、按讚數等應用。確保在高併發環境中資料的一致性。
  • 佇列,可以充當訊息代理軟體,實現基本的佇列功能,但沒辦法確保訊息被成功處理,故訊息有可能遺失。
  • 即時排行榜,可以透過Redis內的sorted set將資料進行排序。

Redis 原本是一個開源的軟體,可惜於今年3月時官方變更了授權條款,從原本開源的 BSD(Berkeley Software Distribution) 授權條款改為 RSALv2(Redis Source Available License)與 SSPLv1(Server Side Public License)雙重授權。據悉其主要目的是限制雲服務供應商不可免費使用 Redis來發展競爭產品。


上一篇
Day27 - Spring Boot 整合 RabbitMQ(下)
下一篇
Day29 - Spring Boot 整合 Redis(下)
系列文
這些年SpringBoot實戰開發教會我的事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言